package practice6;

/**
 * # 问题描述
 * <p>
 * 班里有 N 个学生，第 i 个学生的分数是 `A_i`。当且仅当分数 <= `A_i` 的学生数量多于分数比他高的数量时，
 * 第 i 个学生会说谎。求出有多少学生会说谎。
 * <p>
 * ## 输入格式
 * <p>
 * - 输入 `N` 学生的成绩，包含 `A_1, A_2, ..., A_N`
 * <p>
 * ## 输出格式
 * <p>
 * 对于每组数据，输出有多少学生会说谎。
 * <p>
 * ## 数据范围
 * <p>
 * - $1 \leq N \leq 100$
 * - $0 \leq A_i \leq 100$
 * <p>
 * ## 输入
 * 100 100 100
 * ## 输出
 * 3
 * <p>
 * ## 输入
 * 2 1 3
 * ## 输出
 * 2
 * <p>
 * ## 输入
 * 30 1 30 30
 * ## 输出
 * 3
 * <p>
 * ## 输入
 * 19 27 73 55 88
 * ## 输出
 * 3
 * <p>
 * ## 输入
 * 19 27 73 55 88 88 2 17 22
 * ## 输出
 * 5
 */
public class Main {
    public static int solution(int[] A) {
        // Edit your code here
        int num = 0;
        int minCount = 0;
        int maxCount = 0;
        for (int i = 0; i < A.length; i++) {
            for (int j = 0; j < A.length; j++) {
                if (A[j] <= A[i]) {
                    minCount++;
                } else if (A[j] > A[i]) {
                    maxCount++;
                }
            }
            if (minCount > maxCount) {
                num++;
            }
            minCount = 0;
            maxCount = 0;
        }
        if (num > 0) {
            return num;
        }
        return 0;
    }

    public static void main(String[] args) {
        // Add your test cases here
        System.out.println(solution(new int[]{100, 100, 100}) == 3);
        System.out.println(solution(new int[]{2, 1, 3}) == 2);
        System.out.println(solution(new int[]{30, 1, 30, 30}) == 3);
        System.out.println(solution(new int[]{19, 27, 73, 55, 88}) == 3);
        System.out.println(solution(new int[]{19, 27, 73, 55, 88, 88, 2, 17, 22}) == 5);
    }
}
